Maven vs Gradle: ์๋ฐ ๋น๋ ๋๊ตฌ ์๋ฒฝ ๋น๊ต
์๋ฐ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ๋ฐํ ๋ ์์กด์ฑ ๊ด๋ฆฌ์ ๋น๋๋ฅผ ๋ด๋นํ๋ ๋๊ตฌ๋ ํ์์ ๋๋ค. ์ค๋ซ๋์ ํ์ค์ผ๋ก ์ฐ์ธ Maven๊ณผ ํ๋์ ์ธ ์ฑ๋ฅ์ ์๋ํ๋ Gradle์ ์ฐจ์ด์ ์ ์์ธํ ๋น๊ตํด ๋ณด๊ฒ ์ต๋๋ค.
1. Maven (Apache Maven)
2004๋ ์ ์ถ์๋ ์ ์ ๊น์ ๋น๋ ๋๊ตฌ์ ๋๋ค. ํ๋ก์ ํธ์ ์ ์ฒด์ ์ธ ์๋ช ์ฃผ๊ธฐ๋ฅผ ๊ด๋ฆฌํ๋ฉฐ, ์ ํด์ง ๊ท์น์ ๋ฐ๋ผ ํ๋ก์ ํธ๋ฅผ ๋น๋ํฉ๋๋ค.
- ์ค์ ๋ฐฉ์: XML (
pom.xml) ํ์์ ์ฌ์ฉํฉ๋๋ค. - ํน์ง:
- ์ ํํ๋ ๊ตฌ์กฐ: ๋ชจ๋ ํ๋ก์ ํธ๊ฐ ๋์ผํ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง๋ฏ๋ก ๋ฌ๋ ์ปค๋ธ๊ฐ ๋ฎ๊ณ ๊ตฌ์กฐ ํ์ ์ด ์ฝ์ต๋๋ค.
- ๋ณด์์ ์ด๊ณ ์์ ์ : ์ค๋ซ๋์ ์ฌ์ฉ๋์ด ๋ฒ๊ทธ๊ฐ ์ ๊ณ ์๋ง์ ๋ ๊ฑฐ์ ํ๋ก์ ํธ์์ ํ์ค์ผ๋ก ์ฌ์ฉ๋ฉ๋๋ค.
- ์ฑ๋ฅ: ๋น๋ ์๋ง๋ค ๋ชจ๋ ์์กด์ฑ์ ํ์ธํ๋ฏ๋ก ๋๊ท๋ชจ ํ๋ก์ ํธ์์๋ ์๋๊ฐ ๋๋ฆด ์ ์์ต๋๋ค.
2. Gradle
2012๋ ์ ์ถ์๋ ํ๋์ ์ธ ๋น๋ ๋๊ตฌ๋ก, Maven์ ๋จ์ ์ ๋ณด์ํ๊ณ ์ฑ๋ฅ์ ๊ทน๋ํํ์ต๋๋ค. ํ์ฌ ์๋๋ก์ด๋ ๊ณต์ ๋น๋ ๋๊ตฌ์ด์ ์คํ๋ง ํ๋ก์ ํธ์์ ๊ฐ์ฅ ์ ํธ๋๋ ๋ฐฉ์์ ๋๋ค.
- ์ค์ ๋ฐฉ์: Groovy ๋๋ Kotlin DSL (
build.gradle) ํ์์ ์ฌ์ฉํฉ๋๋ค. - ํน์ง:
- ์ ์ฐ์ฑ: ์ฝ๋ฉํ๋ฏ์ด ๋น๋ ์คํฌ๋ฆฝํธ๋ฅผ ์งค ์ ์์ด ๋ณต์กํ ์กฐ๊ฑด๋ถ ๋น๋๋ ์ปค์คํ ํ์คํฌ ์์ฑ์ด ๋งค์ฐ ์ฝ์ต๋๋ค.
- ์๋์ ์ฑ๋ฅ: **์ฆ๋ถ ๋น๋(Incremental Build)**์ ๋น๋ ์บ์๋ฅผ ์ฌ์ฉํ์ฌ, ๋ณ๊ฒฝ๋ ๋ถ๋ถ๋ง ๋น๋ํฉ๋๋ค. (Maven๋ณด๋ค ์ต๋ 100๋ฐฐ ๋น ๋ฅผ ๋๋ ์์)
- ๊ฐ๋ ์ฑ: XML๋ณด๋ค ํจ์ฌ ๊ฐ๊ฒฐํ ๋ฌธ๋ฒ์ ์ฌ์ฉํ์ฌ ์ค์ ํ์ผ์ ๊ธธ์ด๊ฐ ํ๊ธฐ์ ์ผ๋ก ์งง์์ง๋๋ค.
3. ํต์ฌ ์ฐจ์ด์ ์์ฝํ
| ๋น๊ต ํญ๋ชฉ | Maven | Gradle |
|---|---|---|
| ์ค์ ํ์ผ | pom.xml (XML) | build.gradle (Groovy/Kotlin) |
| ๊ฐ๋ ์ฑ | ๋ฎ์ (ํ๊ทธ๊ฐ ๋ง์ ๊ธธ์ด์ง) | ๋งค์ฐ ๋์ (๊ฐ๊ฒฐํจ) |
| ๋น๋ ์๋ | ๋๋ฆผ | ๋งค์ฐ ๋น ๋ฆ (์ฆ๋ถ ๋น๋ ํ์ฉ) |
| ์ ์ฐ์ฑ | ์ ํ์ (์ ํด์ง ํ ์์์๋ง) | ๋งค์ฐ ๋์ (์คํฌ๋ฆฝํ ๊ฐ๋ฅ) |
| ์์กด์ฑ ์ถฉ๋ | ํด๊ฒฐ์ด ๊น๋ค๋ก์ธ ์ ์์ | ๋์ ์์กด์ฑ ๋ฐ ์ถฉ๋ ํด๊ฒฐ์ด ์ฌ์ |
4. ๋ฌด์์ ์ ํํด์ผ ํ ๊น?
โ ์ด๋ฐ ๊ฒฝ์ฐ 'Maven'์ ์ถ์ฒํฉ๋๋ค.
- ๋ณด์์ ์ธ ๊ธฐ์ ํ๊ฒฝ์ด๋ ๊ธ์ต๊ถ ํ๋ก์ ํธ์ผ ๋.
- ํ๋ก์ ํธ ๋น๋ ์ค์ ์ด ๋จ์ํ๊ณ ํ์ค์ ์ธ ๊ฒฝ์ฐ.
- ํ์ ๋ชจ๋๊ฐ XML ๊ธฐ๋ฐ์ ์ ํํ๋ ๊ตฌ์กฐ๋ฅผ ์ ํธํ ๋.
โ ์ด๋ฐ ๊ฒฝ์ฐ 'Gradle'์ ์ถ์ฒํฉ๋๋ค.
- ์ ๊ท ํ๋ก์ ํธ(Spring Boot ๋ฑ)๋ฅผ ์์ํ ๋. (ํ์ฌ ์ ๊ณ ํ์ค)
- ํ๋ก์ ํธ ๊ท๋ชจ๊ฐ ์ปค์ ๋น๋ ์๋๊ฐ ๋งค์ฐ ์ค์ํ ๋.
- ์๋๋ก์ด๋ ์ฑ์ ๊ฐ๋ฐํ ๋.
- ๋น๋ ๊ณผ์ ์ ์ธ๋ฐํ๊ฒ ์ปค์คํ ํด์ผ ํ๋ ๋ณต์กํ ๋ฉํฐ ๋ชจ๋ ํ๋ก์ ํธ์ผ ๋.
5. ๊ฒฐ๋ก
์ต๊ทผ ํธ๋ ๋๋ ํ์คํ Gradle๋ก ๊ธฐ์ธ์ด์ ธ ์์ต๋๋ค. ๊ฐ๊ฒฐํ ๋ฌธ๋ฒ๊ณผ ๊ฐ๋ ฅํ ์ฑ๋ฅ ๋๋ถ์ ๊ฐ๋ฐ ์์ฐ์ฑ์ด ํจ์ฌ ๋๊ธฐ ๋๋ฌธ์ ๋๋ค. ํ์ง๋ง ์ฌ์ ํ ๋ง์ ํ์ ํ๋ก์ ํธ๊ฐ Maven์ ์ฌ์ฉํ๊ณ ์์ผ๋ฏ๋ก, ๋ ๋๊ตฌ์ ๋ฌธ๋ฒ์ ์ฐจ์ด์ ์๋ ์๋ฆฌ๋ฅผ ๋ชจ๋ ์ดํดํ๊ณ ์๋ ๊ฒ์ด ์ข์ต๋๋ค.